// 数据统计的pinia状态管理器
// 导入defineStore函数对象
import {defineStore} from "pinia";

export const useCounterStore = defineStore("counter", {
//     写法1：选项式写法
    /**
     * 状态初始化函数====相当于data
     * @returns {Object} 返回包含初始状态的对象
     * @returns {number} returns.count - 计数器初始值为0
     * @returns {string} returns.name - 用户姓名初始值为"张三"
     */
    state: () => ({
        count: 0,  // 计数器初始值为10
        name: "张三" // 用户姓名初始值为"张三"
    }),
    getters: {
        // 相当于 computed计算属性=====具有缓存功能
        /**
         * 计算状态计数器值的两倍
         * @param {Object} state - 状态对象，包含count属性
         * @returns {number} 返回count属性值的两倍
         */
        doubleCount: (state) => state.count * 2,

        /**
         * 计算状态计数器值的平方
         * @param {Object} state - 状态对象，包含count属性
         * @returns {number} 返回count属性值的平方
         */
        squareCount: (state) => state.count * state.count

    },
    actions: {
        // 相当于methods 普通函数
        // 模拟点击按钮，将计数器值+1
        increment() {
            this.count++;
        }
    }




    // 写法2：组合式写法
})
